package com.jilijili.pojo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.jilijili.enums.YesOrNo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 短视频表
 *
 * @TableName vlog
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Accessors(chain = true)
public class Vlog implements Serializable {
    /**
     *
     */
    @TableId(value = "id")
    private String id;

    /**
     * 对应用户表id，vlog视频发布者
     */
    @TableField(value = "vloger_id")
    private String vlogerId;

    /**
     * 视频播放地址
     */
    @TableField(value = "url")
    private String url;

    /**
     * 视频封面
     */
    @TableField(value = "cover")
    private String cover;

    /**
     * 视频标题，可以为空
     */
    @TableField(value = "title")
    private String title;

    /**
     * 视频width
     */
    @TableField(value = "width")
    private Integer width;

    /**
     * 视频height
     */
    @TableField(value = "height")
    private Integer height;

    /**
     * 点赞总数
     * 默认为 0
     */
    @TableField(value = "like_counts")
    @Builder.Default()
    private Integer likeCounts = 0;

    /**
     * 评论总数
     * 默认为 0
     */
    @TableField(value = "comments_counts")
    @Builder.Default
    private Integer commentsCounts = 0;

    /**
     * 是否私密，用户可以设置私密，如此可以不公开给比人看
     * 默认公开的 0
     */
    @TableField(value = "is_private")
    @Builder.Default
    private Integer isPrivate = YesOrNo.NO.type;

    /**
     * 创建时间 创建时间
     */
    @TableField(value = "created_time", fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

    /**
     * 更新时间 更新时间
     */
    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}